<template>
	<view class="container" :style="appThemeStyle">
		<!-- 店铺页面组件 -->
		<Page :items="items" ref="page" />
		<!-- 用户隐私保护提示（仅微信小程序） -->
		<!-- #ifdef MP-WEIXIN -->
		<PrivacyPopup :hideTabBar="true" />
		<!-- #endif -->

		<!-- 开屏活动弹窗 -->
		<u-popup v-model="activityShow" width="90%" mode="center" :closeable="true" backgorund="transparents">
			<image @click="$navTo('pages/user/activity/index')" class="pop-img" src="/static/new/index/activity.png"
				mode="widthFix"></image>
		</u-popup>
	</view>
</template>

<script>
	import {
		setCartTabBadge
	} from '@/core/app'
	import * as Api from '@/api/page'
	import StoreApi from '@/api/store'
	import * as UserApi from '@/api/user'
	import Page from '@/components/page'
	import PrivacyPopup from '@/components/privacy-popup'

	const App = getApp()

	export default {
		components: {
			Page,
			PrivacyPopup
		},
		data() {
			return {
				// 页面参数
				options: {},
				// 页面属性
				page: {},
				// 页面元素
				items: [],
				// 活动弹窗开关
				activityShow: null,
				// 活动是否开启(1开启 0关闭)
				enabled: null,
				// 用户信息
				userInfo: {},
			}
		},

		/**
		 * 生命周期函数--监听页面加载
		 */
		onLoad(options) {
			// 当前页面参数
			this.options = options
			// 加载页面数据
			this.getPageData()
		},

		/**
		 * 生命周期函数--监听页面显示
		 */
		onShow() {
			// 更新购物车角标
			setCartTabBadge()


			// 每次进首页都获取新数据
			setTimeout(() => {
				if (this.$refs.page) {
					this.$refs.page.getIndex();
				}
				if (uni.getStorageSync('userId')) {
					// 获取当前用户信息
					this.getUserInfo()
				}
				// 获取商城信息
				this.getStore()
			}, 100)
		},
		methods: {

			/**
			 * 加载页面数据
			 * @param {Object} callback
			 */
			getPageData(callback) {
				const app = this
				const pageId = app.options.pageId || 0
				Api.detail(pageId)
					.then(result => {
						// 设置页面数据
						const {
							data: {
								pageData
							}
						} = result
						app.page = pageData.page
						app.items = pageData.items
						// 设置顶部导航栏栏
						app.setPageBar()
					})
					.finally(() => callback && callback())
			},

			/**
			 * 设置顶部导航栏
			 */
			setPageBar() {
				const {
					page
				} = this
				// 设置页面标题
				uni.setNavigationBarTitle({
					title: page.params.title
				})
				// 设置navbar标题、颜色
				uni.setNavigationBarColor({
					frontColor: page.style.titleTextColor === 'white' ? '#ffffff' : '#000000',
					backgroundColor: page.style.titleBackgroundColor
				})
			},

			// 获取当前用户信息
			getUserInfo() {
				const app = this
				UserApi.info()
					.then(result => {
						this.userInfo = result.data.userInfo
					})
			},

			// 获取商城信息
			getStore() {
				StoreApi.data().then(result => {
					this.enabled = result.data.setting.inviter_activity.enabled
					setTimeout(() => {
						
						// firstIndex 等于1是弹窗过了,等于2是还没弹窗 && enabled等于1是活动开启 && userInfo.invitee_id == 0就是没获得过奖励
						if (uni.getStorageSync('firstIndex') == 2 && this.enabled == 1 && (uni
								.getStorageSync('userId') ? this.userInfo.invitee_id == 0 : true)) {
							this.activityShow = true
							uni.setStorageSync('firstIndex', 1)
						} else {
							this.activityShow = false
						}
						
					}, 100)
				})
			},
		},

		/**
		 * 下拉刷新
		 */
		onPullDownRefresh() {
			// 获取首页数据
			this.getPageData(() => {
				uni.stopPullDownRefresh()
			})
		},

		/**
		 * 分享当前页面
		 */
		onShareAppMessage() {
			const app = this
			const {
				page
			} = app
			return {
				title: page.params.shareTitle,
				path: "/pages/index/index?" + app.$getShareUrlParams()
			}
		},

		/**
		 * 分享到朋友圈
		 * 本接口为 Beta 版本，暂只在 Android 平台支持，详见分享到朋友圈 (Beta)
		 * https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share-timeline.html
		 */
		onShareTimeline() {
			const app = this
			const {
				page
			} = app
			return {
				title: page.params.shareTitle,
				path: "/pages/index/index?" + app.$getShareUrlParams()
			}
		}
	}
</script>

<style lang="scss" scoped>
	.container {
		background: #fff;
	}

	// 开屏活动弹窗
	.pop-img {
		width: 100%;
	}
</style>